<!-- HTML header for doxygen 1.8.5-->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.8.17"/>
<title>GenAVB/TSN: AEM protocol</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<script src="http://www.freescale.com/files/abstract/misc/COLLATERALTEMPLATE_infocenter.js" type="text/javascript" xml:space="preserve"><!-- --></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
  $(document).ready(function() { init_search(); });
/* @license-end */
</script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
<link href="html_custom.css" rel="stylesheet" type="text/css"/>
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectlogo"><img alt="Logo" src="nxp_logo.png"/></td>
  <td style="padding-left: 0.5em;">
   <div id="projectname">GenAVB/TSN
   </div>
  </td>
   <td>        <div id="MSearchBox" class="MSearchBoxInactive">
        <span class="left">
          <img id="MSearchSelect" src="search/mag_sel.png"
               onmouseover="return searchBox.OnSearchSelectShow()"
               onmouseout="return searchBox.OnSearchSelectHide()"
               alt=""/>
          <input type="text" id="MSearchField" value="Search" accesskey="S"
               onfocus="searchBox.OnSearchFieldFocus(true)" 
               onblur="searchBox.OnSearchFieldFocus(false)" 
               onkeyup="searchBox.OnSearchFieldChange(event)"/>
          </span><span class="right">
            <a id="MSearchClose" href="javascript:searchBox.CloseResultsWindow()"><img id="MSearchCloseImg" border="0" src="search/close.png" alt=""/></a>
          </span>
        </div>
</td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- Generated by Doxygen 1.8.17 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'Search');
/* @license-end */
</script>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('group__aem.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#nested-classes">Data Structures</a> &#124;
<a href="#define-members">Macros</a> &#124;
<a href="#enum-members">Enumerations</a>  </div>
  <div class="headertitle">
<div class="title">AEM protocol<div class="ingroups"><a class="el" href="group__other.html">Additional definitions</a> &raquo; <a class="el" href="group__protocol.html">Network protocol headers</a></div></div>  </div>
</div><!--header-->
<div class="contents">
<a name="details" id="details"></a><h2 class="groupheader">Overview</h2>
<p>AVDECC AECP AEM protocol definitions, from IEEE 1722.1-2013. Note: the description of AEM PDUs is based on the official protocol specification. For details on actual usage of those structures with the GenAVB stack control API, see <a class="el" href="control_usage.html">Control API usage</a>. </p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Data Structures</h2></td></tr>
<tr class="memitem:structaecp__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__pdu">aecp_pdu</a></td></tr>
<tr class="separator:structaecp__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaecp__aem__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__aem__pdu">aecp_aem_pdu</a></td></tr>
<tr class="separator:structaecp__aem__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaecp__aem__read__desc__cmd__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__aem__read__desc__cmd__pdu">aecp_aem_read_desc_cmd_pdu</a></td></tr>
<tr class="separator:structaecp__aem__read__desc__cmd__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaecp__aem__read__desc__rsp__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__aem__read__desc__rsp__pdu">aecp_aem_read_desc_rsp_pdu</a></td></tr>
<tr class="separator:structaecp__aem__read__desc__rsp__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaecp__aem__acquire__entity__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__aem__acquire__entity__pdu">aecp_aem_acquire_entity_pdu</a></td></tr>
<tr class="separator:structaecp__aem__acquire__entity__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaecp__aem__start__streaming__cmd__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__aem__start__streaming__cmd__pdu">aecp_aem_start_streaming_cmd_pdu</a></td></tr>
<tr class="separator:structaecp__aem__start__streaming__cmd__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaecp__aem__stop__streaming__cmd__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__aem__stop__streaming__cmd__pdu">aecp_aem_stop_streaming_cmd_pdu</a></td></tr>
<tr class="separator:structaecp__aem__stop__streaming__cmd__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaecp__aem__set__get__control__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__aem__set__get__control__pdu">aecp_aem_set_get_control_pdu</a></td></tr>
<tr class="separator:structaecp__aem__set__get__control__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaecp__aem__get__counters__cmd__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__aem__get__counters__cmd__pdu">aecp_aem_get_counters_cmd_pdu</a></td></tr>
<tr class="separator:structaecp__aem__get__counters__cmd__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:structaecp__aem__get__counters__rsp__pdu"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#structaecp__aem__get__counters__rsp__pdu">aecp_aem_get_counters_rsp_pdu</a></td></tr>
<tr class="separator:structaecp__aem__get__counters__rsp__pdu"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="define-members"></a>
Macros</h2></td></tr>
<tr class="memitem:ga74b331ed6e461ef64245eef8ec19d862"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#ga74b331ed6e461ef64245eef8ec19d862">AECP_AEM_GET_CMD_TYPE</a>(hdr)&#160;&#160;&#160;(ntohs((hdr)-&gt;u_command_type) &amp; 0x7FFF)</td></tr>
<tr class="separator:ga74b331ed6e461ef64245eef8ec19d862"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gafee9b710526c80d58fc2722cc58bf36c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#gafee9b710526c80d58fc2722cc58bf36c">AECP_AEM_GET_U</a>(hdr)&#160;&#160;&#160;((ntohs((hdr)-&gt;u_command_type) &gt;&gt; 15) &amp; 0x1)</td></tr>
<tr class="separator:gafee9b710526c80d58fc2722cc58bf36c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga79d25e40e209e19a3cd3b747c15bf34c"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#ga79d25e40e209e19a3cd3b747c15bf34c">AECP_AEM_SET_U_CMD_TYPE</a>(hdr,  u,  ct)&#160;&#160;&#160;((hdr)-&gt;u_command_type = htons(((u &amp; 0x1) &lt;&lt; 15) | (ct &amp; 0x7FFF)))</td></tr>
<tr class="separator:ga79d25e40e209e19a3cd3b747c15bf34c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga184d72e48c3e64da9807c6fab98f3a53"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#ga184d72e48c3e64da9807c6fab98f3a53">AECP_AEM_ACQUIRE_PERSISTENT</a>&#160;&#160;&#160;(1 &lt;&lt; 0)</td></tr>
<tr class="separator:ga184d72e48c3e64da9807c6fab98f3a53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gade22f6ab6f1e5948679bdb96bc327198"><td class="memItemLeft" align="right" valign="top">#define&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#gade22f6ab6f1e5948679bdb96bc327198">AECP_AEM_ACQUIRE_RELEASE</a>&#160;&#160;&#160;(1 &lt;&lt; 31)</td></tr>
<tr class="separator:gade22f6ab6f1e5948679bdb96bc327198"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
Enumerations</h2></td></tr>
<tr class="memitem:ga1a819286f45ec4d69fb995627756d840"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#ga1a819286f45ec4d69fb995627756d840">aecp_message_type_t</a> { <br />
&#160;&#160;<a class="el" href="group__aem.html#gga1a819286f45ec4d69fb995627756d840a7698d47e4fbc8d3e54b8bd2648c5c1a2">AECP_AEM_COMMAND</a> = 0x00, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga1a819286f45ec4d69fb995627756d840ac45526acdf58341f0ce63e36a7f0c09d">AECP_AEM_RESPONSE</a> = 0x01, 
<br />
&#160;&#160;<b>AECP_ADDRESS_ACCESS_COMMAND</b> = 0x02, 
<br />
&#160;&#160;<b>AECP_ADDRESS_ACCESS_RESPONSE</b> = 0x03, 
<br />
&#160;&#160;<b>AECP_AVC_COMMAND</b> = 0x04, 
<br />
&#160;&#160;<b>AECP_AVC_RESPONSE</b> = 0x05, 
<br />
&#160;&#160;<b>AECP_VENDOR_UNIQUE_COMMAND</b> = 0x06, 
<br />
&#160;&#160;<b>AECP_VENDOR_UNIQUE_RESPONSE</b> = 0x07, 
<br />
&#160;&#160;<b>AECP_HDCP_APM_COMMAND</b> = 0x08, 
<br />
&#160;&#160;<b>AECP_HDCP_APM_RESPONSE</b> = 0x09, 
<br />
&#160;&#160;<b>AECP_EXTENDED_COMMAND</b> = 0x0E, 
<br />
&#160;&#160;<b>AECP_EXTENDED_RESPONSE</b> = 0x0F
<br />
 }</td></tr>
<tr class="separator:ga1a819286f45ec4d69fb995627756d840"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:gae99a25757035d67d1e38e288f857ff41"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#gae99a25757035d67d1e38e288f857ff41">aecp_aem_command_type_t</a> { <br />
&#160;&#160;<a class="el" href="group__aem.html#ggae99a25757035d67d1e38e288f857ff41aec8db2c2f1546a02a7ad30c42740a992">AECP_AEM_CMD_ACQUIRE_ENTITY</a> = 0x0000, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_LOCK_ENTITY</b> = 0x0001, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_ENTITY_AVAILABLE</b> = 0x0002, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_CONTROLLER_AVAILABLE</b> = 0x0003, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#ggae99a25757035d67d1e38e288f857ff41af118b9c06a4fb73e7d1fa85406478571">AECP_AEM_CMD_READ_DESCRIPTOR</a> = 0x0004, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_WRITE_DESCRIPTOR</b> = 0x0005, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_CONFIGURATION</b> = 0x0006, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_CONFIGURATION</b> = 0x0007, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_STREAM_FORMAT</b> = 0x0008, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_STREAM_FORMAT</b> = 0x0009, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_VIDEO_FORMAT</b> = 0x000a, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_VIDEO_FORMAT</b> = 0x000b, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_SENSOR_FORMAT</b> = 0x000c, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_SENSOR_FORMAT</b> = 0x000d, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_STREAM_INFO</b> = 0x000e, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_STREAM_INFO</b> = 0x000f, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_NAME</b> = 0x0010, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_NAME</b> = 0x0011, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_ASSOCIATION_ID</b> = 0x0012, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_ASSOCIATION_ID</b> = 0x0013, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_SAMPLING_RATE</b> = 0x0014, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_SAMPLING_RATE</b> = 0x0015, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_CLOCK_SOURCE</b> = 0x0016, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_CLOCK_SOURCE</b> = 0x0017, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#ggae99a25757035d67d1e38e288f857ff41ad2319757d74d77aad53043e893c96f83">AECP_AEM_CMD_SET_CONTROL</a> = 0x0018, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#ggae99a25757035d67d1e38e288f857ff41aae582b03e74b1c7cc03b18a577212ae8">AECP_AEM_CMD_GET_CONTROL</a> = 0x0019, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_INCREMENT_CONTROL</b> = 0x001a, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_DECREMENT_CONTROL</b> = 0x001b, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_SIGNAL_SELECTOR</b> = 0x001c, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_SIGNAL_SELECTOR</b> = 0x001d, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_MIXER</b> = 0x001e, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_MIXER</b> = 0x001f, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_MATRIX</b> = 0x0020, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_MATRIX</b> = 0x0021, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#ggae99a25757035d67d1e38e288f857ff41ab6fc010d780e35c79f1c36756239e4be">AECP_AEM_CMD_START_STREAMING</a> = 0x0022, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#ggae99a25757035d67d1e38e288f857ff41a143f813047089bae80d7e5a1c17e82db">AECP_AEM_CMD_STOP_STREAMING</a> = 0x0023, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#ggae99a25757035d67d1e38e288f857ff41ac1c176e117445da5a74c0245c0b670a3">AECP_AEM_CMD_REGISTER_UNSOLICITED_NOTIFICATION</a> = 0x0024, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#ggae99a25757035d67d1e38e288f857ff41ac6ef530440a0e54b7a56ecea4b5412a6">AECP_AEM_CMD_DEREGISTER_UNSOLICITED_NOTIFICATION</a> = 0x0025, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_IDENTIFY_NOTIFICATION</b> = 0x0026, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_AVB_INFO</b> = 0x0027, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_AS_PATH</b> = 0x0028, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_COUNTERS</b> = 0x0029, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_REBOOT</b> = 0x002a, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_AUDIO_MAP</b> = 0x002b, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_ADD_AUDIO_MAPPINGS</b> = 0x002c, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_REMOVE_AUDIO_MAPPINGS</b> = 0x002d, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_VIDEO_MAP</b> = 0x002e, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_ADD_VIDEO_MAPPINGS</b> = 0x002f, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_REMOVE_VIDEO_MAPPINGS</b> = 0x0030, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_SENSOR_MAP</b> = 0x0031, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_ADD_SENSOR_MAPPINGS</b> = 0x0032, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_REMOVE_SENSOR_MAPPINGS</b> = 0x0033, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_START_OPERATION</b> = 0x0034, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_ABORT_OPERATION</b> = 0x0035, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_OPERATION_STATUS</b> = 0x0036, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_ADD_KEY</b> = 0x0037, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_DELETE_KEY</b> = 0x0038, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_GET_KEY_LIST</b> = 0x0039, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_GET_KEY</b> = 0x003a, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_ADD_KEY_TO_CHAIN</b> = 0x003b, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_DELETE_KEY_FROM_CHAIN</b> = 0x003c, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_GET_KEYCHAIN_LIST</b> = 0x003d, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_GET_IDENTITY</b> = 0x003e, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_ADD_TOKEN</b> = 0x003f, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTH_DELETE_TOKEN</b> = 0x0040, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_AUTHENTICATE</b> = 0x0041, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_DEAUTHENTICATE</b> = 0x0042, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_ENABLE_TRANSPORT_SECURITY</b> = 0x0043, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_DISABLE_TRANSPORT_SECURITY</b> = 0x0044, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_ENABLE_STREAM_ENCRYPTION</b> = 0x0045, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_DISABLE_STREAM_ENCRYPTION</b> = 0x0046, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_MEMORY_OBJECT_LENGTH</b> = 0x0047, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_MEMORY_OBJECT_LENGTH</b> = 0x0048, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_SET_STREAM_BACKUP</b> = 0x0049, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_GET_STREAM_BACKUP</b> = 0x004a, 
<br />
&#160;&#160;<b>AECP_AEM_CMD_EXPANSION</b> = 0x7fff
<br />
 }</td></tr>
<tr class="separator:gae99a25757035d67d1e38e288f857ff41"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ga28c8fb55a44ef0fa9474dadb507180b7"><td class="memItemLeft" align="right" valign="top">enum &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="group__aem.html#ga28c8fb55a44ef0fa9474dadb507180b7">aecp_status_t</a> { <br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7aa4a36d9de6e4983e5125c766baab10df">AECP_SUCCESS</a> = 0, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7a68d0c6724ca69737507f1f7b07afd4c3">AECP_AEM_SUCCESS</a> = 0, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7a7028507a64165b2561e1e0196399aa61">AECP_NOT_IMPLEMENTED</a> = 1, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7ace7d625da977bcf2046cdca39d4472f5">AECP_AEM_NOT_IMPLEMENTED</a> = 1, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7a83173bb7eb99789af9377b7e3b4df524">AECP_AEM_NO_SUCH_DESCRIPTOR</a> = 2, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7afd342da8eaa33eda857e5be979837424">AECP_AEM_ENTITY_LOCKED</a> = 3, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7adb5df93cdcf6f9f99431cda5de0204d4">AECP_AEM_ENTITY_ACQUIRED</a> = 4, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7a430eaac0ffe419ea5c52d30577cf07ff">AECP_AEM_NOT_AUTHENTICATED</a> = 5, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7ae6e9c4da59d123581cbb018fd22067a2">AECP_AEM_AUTHENTICATION_DISABLED</a> = 6, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7a37a901df96893ae253bbeffe686f7618">AECP_AEM_BAD_ARGUMENTS</a> = 7, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7a57307e874f86360517bd5901fdd2da96">AECP_AEM_NO_RESOURCES</a> = 8, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7a46ce58104c1d800962ed91c0d0f0373b">AECP_AEM_IN_PROGRESS</a> = 9, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7aff0597a79dab385decda7d2a89937700">AECP_AEM_ENTITY_MISBEHAVING</a> = 10, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7a843881802a73fb831f7b9549773e053a">AECP_AEM_NOT_SUPPORTED</a> = 11, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7ac5547417f2d51ff4973b01f1e5e5f517">AECP_AEM_STREAM_IS_RUNNING</a> = 12, 
<br />
&#160;&#160;<a class="el" href="group__aem.html#gga28c8fb55a44ef0fa9474dadb507180b7ab6a2dee78f29ebfea79c149a160300ec">AECP_AEM_TIMEOUT</a> = 13
<br />
 }</td></tr>
<tr class="separator:ga28c8fb55a44ef0fa9474dadb507180b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<hr/><h2 class="groupheader">Data Structure Documentation</h2>
<a name="structaecp__pdu" id="structaecp__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__pdu">&#9670;&nbsp;</a></span>aecp_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 9.2.1 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a26c626daa5962edfb212afabd7f48b79"></a>avb_u64</td>
<td class="fieldname">
entity_id</td>
<td class="fielddoc">
ID of the entity targeted by (if the message is a command), or sending (if the message is a response) the message. </td></tr>
<tr><td class="fieldtype">
<a id="a63b4b597840f92816e511c30ef4dfb66"></a>avb_u64</td>
<td class="fieldname">
controller_entity_id</td>
<td class="fielddoc">
ID of the controller sending (if the message is a command), or receiving (if the message is a response) the message. </td></tr>
<tr><td class="fieldtype">
<a id="a9e38b922a840a8cd7ecad5f75ba09454"></a>avb_u16</td>
<td class="fieldname">
sequence_id</td>
<td class="fielddoc">
Sequence ID of the message, determined by the controller that sent the command (if any). </td></tr>
</table>

</div>
</div>
<a name="structaecp__aem__pdu" id="structaecp__aem__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__aem__pdu">&#9670;&nbsp;</a></span>aecp_aem_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_aem_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 9.2.1 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a985653c15ea71b51a25a407f0f74919d"></a>avb_u64</td>
<td class="fieldname">
entity_id</td>
<td class="fielddoc">
See <a class="el" href="group__aem.html#structaecp__pdu">aecp_pdu</a>. </td></tr>
<tr><td class="fieldtype">
<a id="ac5267fdb2c2434519508c910c8ab1d58"></a>avb_u64</td>
<td class="fieldname">
controller_entity_id</td>
<td class="fielddoc">
See <a class="el" href="group__aem.html#structaecp__pdu">aecp_pdu</a>. </td></tr>
<tr><td class="fieldtype">
<a id="af3b6c87993b9536ec6f16cffe4d5e995"></a>avb_u16</td>
<td class="fieldname">
sequence_id</td>
<td class="fielddoc">
See <a class="el" href="group__aem.html#structaecp__pdu">aecp_pdu</a>. </td></tr>
<tr><td class="fieldtype">
<a id="a2453ca57616674f45f6e32646d58ab74"></a>avb_u16</td>
<td class="fieldname">
u_command_type</td>
<td class="fielddoc">
Bit field of U bit (1 for unsolicited responses, 0 in all other cases) and <a class="el" href="group__aem.html#gae99a25757035d67d1e38e288f857ff41">aecp_aem_command_type_t</a>. </td></tr>
</table>

</div>
</div>
<a name="structaecp__aem__read__desc__cmd__pdu" id="structaecp__aem__read__desc__cmd__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__aem__read__desc__cmd__pdu">&#9670;&nbsp;</a></span>aecp_aem_read_desc_cmd_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_aem_read_desc_cmd_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 7.4.5 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a25a2d606a5ab34ab79f7f73972490553"></a>avb_u16</td>
<td class="fieldname">
configuration_index</td>
<td class="fielddoc">
Configuration from which the descriptor is to be read. </td></tr>
<tr><td class="fieldtype">
<a id="a791fec4203427b9dcf682c7fbfc761b5"></a>avb_u16</td>
<td class="fieldname">
reserved</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a94a9b628d9c18c05124ed2e7910556c4"></a>avb_u16</td>
<td class="fieldname">
descriptor_type</td>
<td class="fielddoc">
Type of the descriptor to be read. </td></tr>
<tr><td class="fieldtype">
<a id="adfc62913231bb48cc61f03dffa78ad8f"></a>avb_u16</td>
<td class="fieldname">
descriptor_index</td>
<td class="fielddoc">
Index of the descriptor to be read. </td></tr>
</table>

</div>
</div>
<a name="structaecp__aem__read__desc__rsp__pdu" id="structaecp__aem__read__desc__rsp__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__aem__read__desc__rsp__pdu">&#9670;&nbsp;</a></span>aecp_aem_read_desc_rsp_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_aem_read_desc_rsp_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 7.4.5 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a4a3c9fe6566a64c639d7d8c00486a3f9"></a>avb_u16</td>
<td class="fieldname">
configuration_index</td>
<td class="fielddoc">
Configuration from which the descriptor was read. </td></tr>
<tr><td class="fieldtype">
<a id="a6c62a5c89512fb446ddcb6511ddd757c"></a>avb_u16</td>
<td class="fieldname">
reserved</td>
<td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<a name="structaecp__aem__acquire__entity__pdu" id="structaecp__aem__acquire__entity__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__aem__acquire__entity__pdu">&#9670;&nbsp;</a></span>aecp_aem_acquire_entity_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_aem_acquire_entity_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 7.4.1 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a1df874e286e0023f731be615296cce2d"></a>avb_u32</td>
<td class="fieldname">
flags</td>
<td class="fielddoc">
Bitmask of <a class="el" href="group__aem.html#ga184d72e48c3e64da9807c6fab98f3a53">AECP_AEM_ACQUIRE_PERSISTENT</a>, <a class="el" href="group__aem.html#gade22f6ab6f1e5948679bdb96bc327198">AECP_AEM_ACQUIRE_RELEASE</a>. </td></tr>
<tr><td class="fieldtype">
<a id="a3e457423916c92c261d758d4ab8a8936"></a>avb_u64</td>
<td class="fieldname">
owner_id</td>
<td class="fielddoc">
Set to 0 for a command, and to the Entity ID of the AVDECC Controller which owns the AVDECC Entity for a response. </td></tr>
<tr><td class="fieldtype">
<a id="a21f63b747eefc97927194b0a579f0408"></a>avb_u16</td>
<td class="fieldname">
descriptor_type</td>
<td class="fielddoc">
Type of the descriptor being acquired. </td></tr>
<tr><td class="fieldtype">
<a id="add7473b8849c5bf1ba6642bf6ce4b5da"></a>avb_u16</td>
<td class="fieldname">
descriptor_index</td>
<td class="fielddoc">
Index of the descriptor being acquired. </td></tr>
</table>

</div>
</div>
<a name="structaecp__aem__start__streaming__cmd__pdu" id="structaecp__aem__start__streaming__cmd__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__aem__start__streaming__cmd__pdu">&#9670;&nbsp;</a></span>aecp_aem_start_streaming_cmd_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_aem_start_streaming_cmd_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 7.4.35 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a0b5e8a853ebdfe59d3343b122887ccea"></a>avb_u16</td>
<td class="fieldname">
descriptor_type</td>
<td class="fielddoc">
Type of the descriptor to be read. </td></tr>
<tr><td class="fieldtype">
<a id="ac5f52946d5f84817f194aa22dc3b87fa"></a>avb_u16</td>
<td class="fieldname">
descriptor_index</td>
<td class="fielddoc">
Index of the descriptor to be read. </td></tr>
</table>

</div>
</div>
<a name="structaecp__aem__stop__streaming__cmd__pdu" id="structaecp__aem__stop__streaming__cmd__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__aem__stop__streaming__cmd__pdu">&#9670;&nbsp;</a></span>aecp_aem_stop_streaming_cmd_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_aem_stop_streaming_cmd_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 7.4.36 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a43b7e868a8bf7749b10bda717cca9616"></a>avb_u16</td>
<td class="fieldname">
descriptor_type</td>
<td class="fielddoc">
Type of the descriptor to be read. </td></tr>
<tr><td class="fieldtype">
<a id="a076c3e5dc77db4a1ee7bf2e910d9da74"></a>avb_u16</td>
<td class="fieldname">
descriptor_index</td>
<td class="fielddoc">
Index of the descriptor to be read. </td></tr>
</table>

</div>
</div>
<a name="structaecp__aem__set__get__control__pdu" id="structaecp__aem__set__get__control__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__aem__set__get__control__pdu">&#9670;&nbsp;</a></span>aecp_aem_set_get_control_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_aem_set_get_control_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 7.4.25/26 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="affbeb9599914bd7a99fa23e712d6ad7b"></a>avb_u16</td>
<td class="fieldname">
descriptor_type</td>
<td class="fielddoc">
Set to AEM_DESC_TYPE_CONTROL. </td></tr>
<tr><td class="fieldtype">
<a id="a9e7313cbe48f8a5a6af93ad5112efd73"></a>avb_u16</td>
<td class="fieldname">
descriptor_index</td>
<td class="fielddoc">
Index of the Control for which the current values are being set. </td></tr>
</table>

</div>
</div>
<a name="structaecp__aem__get__counters__cmd__pdu" id="structaecp__aem__get__counters__cmd__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__aem__get__counters__cmd__pdu">&#9670;&nbsp;</a></span>aecp_aem_get_counters_cmd_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_aem_get_counters_cmd_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 7.4.42 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a5533a189b7d27c8905b11b6244426c0a"></a>avb_u16</td>
<td class="fieldname">
descriptor_type</td>
<td class="fielddoc">
ENTITY, AVB_INTERFACE, CLOCK_DOMAIN or STREAM_INPUT. </td></tr>
<tr><td class="fieldtype">
<a id="a469ce8e8517e7343ed47b6525d4e40c8"></a>avb_u16</td>
<td class="fieldname">
descriptor_index</td>
<td class="fielddoc">
Index of the descriptor whose counters are to be fetched. </td></tr>
</table>

</div>
</div>
<a name="structaecp__aem__get__counters__rsp__pdu" id="structaecp__aem__get__counters__rsp__pdu"></a>
<h2 class="memtitle"><span class="permalink"><a href="#structaecp__aem__get__counters__rsp__pdu">&#9670;&nbsp;</a></span>aecp_aem_get_counters_rsp_pdu</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">struct aecp_aem_get_counters_rsp_pdu</td>
        </tr>
      </table>
</div><div class="memdoc">
<div class="textblock"><p>From section 7.4.42 of IEEE 1722.1-2013. </p>
</div><table class="fieldtable">
<tr><th colspan="3">Data Fields</th></tr>
<tr><td class="fieldtype">
<a id="a14b2227481c5a48fa3d49060b797059d"></a>avb_u16</td>
<td class="fieldname">
descriptor_type</td>
<td class="fielddoc">
ENTITY, AVB_INTERFACE, CLOCK_DOMAIN or STREAM_INPUT. </td></tr>
<tr><td class="fieldtype">
<a id="a372edb4fc7fb8cd0208f373528ea2a3c"></a>avb_u16</td>
<td class="fieldname">
descriptor_index</td>
<td class="fielddoc">
Index of the descriptor whose counters are fetched. </td></tr>
<tr><td class="fieldtype">
<a id="a83b370793a4934f0e16da0ddab616d83"></a>avb_u32</td>
<td class="fieldname">
counters_valid</td>
<td class="fielddoc">
</td></tr>
<tr><td class="fieldtype">
<a id="a693b70b6c9032110f09f6c4003ca647c"></a>avb_u32</td>
<td class="fieldname">
counters_block[AECP_AEM_NB_COUNTERS]</td>
<td class="fielddoc">
</td></tr>
</table>

</div>
</div>
<h2 class="groupheader">Macro Definition Documentation</h2>
<a id="ga74b331ed6e461ef64245eef8ec19d862"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga74b331ed6e461ef64245eef8ec19d862">&#9670;&nbsp;</a></span>AECP_AEM_GET_CMD_TYPE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AECP_AEM_GET_CMD_TYPE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hdr</td><td>)</td>
          <td>&#160;&#160;&#160;(ntohs((hdr)-&gt;u_command_type) &amp; 0x7FFF)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Extracts the command type from an AECP AEM PDU. </p><dl class="section return"><dt>Returns</dt><dd>command_type from <a class="el" href="group__aem.html#gae99a25757035d67d1e38e288f857ff41">aecp_aem_command_type_t</a>. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hdr</td><td>pointer to struct <a class="el" href="group__aem.html#structaecp__aem__pdu">aecp_aem_pdu</a>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="gafee9b710526c80d58fc2722cc58bf36c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gafee9b710526c80d58fc2722cc58bf36c">&#9670;&nbsp;</a></span>AECP_AEM_GET_U</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AECP_AEM_GET_U</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hdr</td><td>)</td>
          <td>&#160;&#160;&#160;((ntohs((hdr)-&gt;u_command_type) &gt;&gt; 15) &amp; 0x1)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Extracts the u bit from an AECP AEM PDU. </p><dl class="section return"><dt>Returns</dt><dd>u bit (1 for unsolicited responses, 0 otherwise). </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hdr</td><td>pointer to struct <a class="el" href="group__aem.html#structaecp__aem__pdu">aecp_aem_pdu</a>. </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga79d25e40e209e19a3cd3b747c15bf34c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga79d25e40e209e19a3cd3b747c15bf34c">&#9670;&nbsp;</a></span>AECP_AEM_SET_U_CMD_TYPE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AECP_AEM_SET_U_CMD_TYPE</td>
          <td>(</td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">hdr, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">u, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">&#160;</td>
          <td class="paramname">ct&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td>&#160;&#160;&#160;((hdr)-&gt;u_command_type = htons(((u &amp; 0x1) &lt;&lt; 15) | (ct &amp; 0x7FFF)))</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Updates the u_command_type field in an <a class="el" href="group__aem.html#structaecp__aem__pdu">aecp_aem_pdu</a> structure. </p><dl class="section return"><dt>Returns</dt><dd>none. </dd></dl>
<dl class="params"><dt>Parameters</dt><dd>
  <table class="params">
    <tr><td class="paramname">hdr</td><td>pointer to struct <a class="el" href="group__aem.html#structaecp__aem__pdu">aecp_aem_pdu</a> to be updated. </td></tr>
    <tr><td class="paramname">u</td><td>u bit value (1 for unsolicited responses, 0 otherwise). </td></tr>
    <tr><td class="paramname">ct</td><td>value of AECP AEM command_type (from <a class="el" href="group__aem.html#gae99a25757035d67d1e38e288f857ff41">aecp_aem_command_type_t</a>). </td></tr>
  </table>
  </dd>
</dl>

</div>
</div>
<a id="ga184d72e48c3e64da9807c6fab98f3a53"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga184d72e48c3e64da9807c6fab98f3a53">&#9670;&nbsp;</a></span>AECP_AEM_ACQUIRE_PERSISTENT</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AECP_AEM_ACQUIRE_PERSISTENT&#160;&#160;&#160;(1 &lt;&lt; 0)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Acquire the AVDECC Entity and disable the CONTROLLER_AVAILABLE test for future ACQUIRE_ENTITY commands until released. The AVDECC Entity returns an ENTITY_ACQUIRED response immediately to any other Controller. </p>

</div>
</div>
<a id="gade22f6ab6f1e5948679bdb96bc327198"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gade22f6ab6f1e5948679bdb96bc327198">&#9670;&nbsp;</a></span>AECP_AEM_ACQUIRE_RELEASE</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">#define AECP_AEM_ACQUIRE_RELEASE&#160;&#160;&#160;(1 &lt;&lt; 31)</td>
        </tr>
      </table>
</div><div class="memdoc">
<p>Release the AVDECC Controller from the acquisition. </p>

</div>
</div>
<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="ga1a819286f45ec4d69fb995627756d840"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga1a819286f45ec4d69fb995627756d840">&#9670;&nbsp;</a></span>aecp_message_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__aem.html#ga1a819286f45ec4d69fb995627756d840">aecp_message_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>AECP message types, from table 9.1 of IEEE 1722.1-2013. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga1a819286f45ec4d69fb995627756d840a7698d47e4fbc8d3e54b8bd2648c5c1a2"></a>AECP_AEM_COMMAND&#160;</td><td class="fielddoc"><p>AECP message type, AEM command. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga1a819286f45ec4d69fb995627756d840ac45526acdf58341f0ce63e36a7f0c09d"></a>AECP_AEM_RESPONSE&#160;</td><td class="fielddoc"><p>AECP message type, AEM response. </p>
</td></tr>
</table>

</div>
</div>
<a id="gae99a25757035d67d1e38e288f857ff41"></a>
<h2 class="memtitle"><span class="permalink"><a href="#gae99a25757035d67d1e38e288f857ff41">&#9670;&nbsp;</a></span>aecp_aem_command_type_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__aem.html#gae99a25757035d67d1e38e288f857ff41">aecp_aem_command_type_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>AECP AEM commands, from table 7.125 of IEEE 1722.1-2013. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="ggae99a25757035d67d1e38e288f857ff41aec8db2c2f1546a02a7ad30c42740a992"></a>AECP_AEM_CMD_ACQUIRE_ENTITY&#160;</td><td class="fielddoc"><p>ACQUIRE_ENTITY command/response. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae99a25757035d67d1e38e288f857ff41af118b9c06a4fb73e7d1fa85406478571"></a>AECP_AEM_CMD_READ_DESCRIPTOR&#160;</td><td class="fielddoc"><p>READ_DESCRIPTOR command/response. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae99a25757035d67d1e38e288f857ff41ad2319757d74d77aad53043e893c96f83"></a>AECP_AEM_CMD_SET_CONTROL&#160;</td><td class="fielddoc"><p>SET_CONTROL command/response. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae99a25757035d67d1e38e288f857ff41aae582b03e74b1c7cc03b18a577212ae8"></a>AECP_AEM_CMD_GET_CONTROL&#160;</td><td class="fielddoc"><p>GET_CONTROL command/response. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae99a25757035d67d1e38e288f857ff41ab6fc010d780e35c79f1c36756239e4be"></a>AECP_AEM_CMD_START_STREAMING&#160;</td><td class="fielddoc"><p>START_STREAMING command/response. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae99a25757035d67d1e38e288f857ff41a143f813047089bae80d7e5a1c17e82db"></a>AECP_AEM_CMD_STOP_STREAMING&#160;</td><td class="fielddoc"><p>STOP_STREAMING command/response. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae99a25757035d67d1e38e288f857ff41ac1c176e117445da5a74c0245c0b670a3"></a>AECP_AEM_CMD_REGISTER_UNSOLICITED_NOTIFICATION&#160;</td><td class="fielddoc"><p>REGISTER_UNSOLICITED_NOTIFICATION command/response. </p>
</td></tr>
<tr><td class="fieldname"><a id="ggae99a25757035d67d1e38e288f857ff41ac6ef530440a0e54b7a56ecea4b5412a6"></a>AECP_AEM_CMD_DEREGISTER_UNSOLICITED_NOTIFICATION&#160;</td><td class="fielddoc"><p>DEREGISTER_UNSOLICITED_NOTIFICATION command/response. </p>
</td></tr>
</table>

</div>
</div>
<a id="ga28c8fb55a44ef0fa9474dadb507180b7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ga28c8fb55a44ef0fa9474dadb507180b7">&#9670;&nbsp;</a></span>aecp_status_t</h2>

<div class="memitem">
<div class="memproto">
      <table class="memname">
        <tr>
          <td class="memname">enum <a class="el" href="group__aem.html#ga28c8fb55a44ef0fa9474dadb507180b7">aecp_status_t</a></td>
        </tr>
      </table>
</div><div class="memdoc">
<p>AECP and AECP AEM status codes, from section 9.2.11.6 and table 7.126 of IEEE 1722.1-2013. </p>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7aa4a36d9de6e4983e5125c766baab10df"></a>AECP_SUCCESS&#160;</td><td class="fielddoc"><p>The AVDECC Entity successfully performed the command and has valid results. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7a68d0c6724ca69737507f1f7b07afd4c3"></a>AECP_AEM_SUCCESS&#160;</td><td class="fielddoc"><p>The AVDECC Entity successfully performed the command and has valid results. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7a7028507a64165b2561e1e0196399aa61"></a>AECP_NOT_IMPLEMENTED&#160;</td><td class="fielddoc"><p>The AVDECC Entity does not support the command type. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7ace7d625da977bcf2046cdca39d4472f5"></a>AECP_AEM_NOT_IMPLEMENTED&#160;</td><td class="fielddoc"><p>The AVDECC Entity does not support the command type. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7a83173bb7eb99789af9377b7e3b4df524"></a>AECP_AEM_NO_SUCH_DESCRIPTOR&#160;</td><td class="fielddoc"><p>A descriptor with the descriptor_type and descriptor_index specified does not exist. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7afd342da8eaa33eda857e5be979837424"></a>AECP_AEM_ENTITY_LOCKED&#160;</td><td class="fielddoc"><p>The AVDECC Entity has been locked by another AVDECC Controller. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7adb5df93cdcf6f9f99431cda5de0204d4"></a>AECP_AEM_ENTITY_ACQUIRED&#160;</td><td class="fielddoc"><p>The AVDECC Entity has been acquired by another AVDECC Controller. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7a430eaac0ffe419ea5c52d30577cf07ff"></a>AECP_AEM_NOT_AUTHENTICATED&#160;</td><td class="fielddoc"><p>The AVDECC Controller is not authenticated with the AVDECC Entity. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7ae6e9c4da59d123581cbb018fd22067a2"></a>AECP_AEM_AUTHENTICATION_DISABLED&#160;</td><td class="fielddoc"><p>The AVDECC Controller is trying to use an authentication command when authentication isn’t enable on the AVDECC Entity. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7a37a901df96893ae253bbeffe686f7618"></a>AECP_AEM_BAD_ARGUMENTS&#160;</td><td class="fielddoc"><p>One or more of the values in the fields of the frame were deemed to be bad by the AVDECC Entity (unsupported, incorrect combination, etc.). </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7a57307e874f86360517bd5901fdd2da96"></a>AECP_AEM_NO_RESOURCES&#160;</td><td class="fielddoc"><p>The AVDECC Entity cannot complete the command because it does not have the resources to support it. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7a46ce58104c1d800962ed91c0d0f0373b"></a>AECP_AEM_IN_PROGRESS&#160;</td><td class="fielddoc"><p>The AVDECC Entity is processing the command and will send a second response at a later time with the result of the command. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7aff0597a79dab385decda7d2a89937700"></a>AECP_AEM_ENTITY_MISBEHAVING&#160;</td><td class="fielddoc"><p>The AVDECC Entity is generated an internal error while trying to process the command. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7a843881802a73fb831f7b9549773e053a"></a>AECP_AEM_NOT_SUPPORTED&#160;</td><td class="fielddoc"><p>The command is implemented but the target of the command is not supported. </p>
<p>For example trying to set the value of a read-only Control. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7ac5547417f2d51ff4973b01f1e5e5f517"></a>AECP_AEM_STREAM_IS_RUNNING&#160;</td><td class="fielddoc"><p>The Stream is currently streaming and the command is one which cannot be executed on an Active Stream. </p>
</td></tr>
<tr><td class="fieldname"><a id="gga28c8fb55a44ef0fa9474dadb507180b7ab6a2dee78f29ebfea79c149a160300ec"></a>AECP_AEM_TIMEOUT&#160;</td><td class="fielddoc"><p>Added for communication with GenAVB controller application, to signal a timeout waiting for a response from the target entity. </p>
</td></tr>
</table>

</div>
</div>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- HTML footer for doxygen 1.8.5-->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul class="foot">
    <li class="footer"> &copy; 2017-2020 NXP
    </li>
  </ul>
</div>
</body>
</html>
